package com.unitd.frame.sso.common.shiro.impl;

import org.apache.shiro.authc.AuthenticationToken;

import com.unitd.frame.sso.common.token.Token;

/**
 * @desc sso 的票据凭证,继承自shiro的 AuthenticationInfo ,实现SSO与shiro的票据信息的整合
 * AuthenticationInfo有两个作用：
 *                 1、如果Realm是AuthenticatingRealm子类,则提供给AuthenticatingRealm内部使用的CredentialsMatcher进行凭据验证;（如果没有继承它需要在自己的Realm中自己实现验证）;
 *                 2、提供给SecurityManager来创建Subject（提供身份信息）
 * @filename SSOAuthToken.java
 * @copyright www.unitd.com
 * @author Hudan
 * @version 1.0
 * @date 2016/10/14
 */
public class SSOAuthToken implements AuthenticationToken {

	private final Token token; 								// sso 访问票据对象


	public SSOAuthToken( Token token ) {
		this.token = token;
	}

	/**
	 * @desc 实现Shrio的父类,获取身份方法
	 * @return sso 的票据凭证 {@link AuthenticationToken}
	 */
	@Override
	public Object getPrincipal() {
		return token;
	}

	/**
	 * @desc 实现父类,获取凭证方法
	 * @return sso 的票据凭证 {@link AuthenticationToken}
	 */
	@Override
	public Object getCredentials() {
		return token;
	}
}